package cn.com.nes.common.util;

import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import java.util.UUID;

public class UuidUtils {


	public static String[] chars = new String[] { 
		"a", "b", "c", "d", "e", "f",
		"g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s",
		"t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5",
		"6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I",
		"J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V",
		"W", "X", "Y", "Z" 
	};
	 
	 
	public static String generateShortUuid() {
		StringBuffer shortBuffer = new StringBuffer();
		String uuid = UUID.randomUUID().toString().replace("-", "");
		for (int i = 0; i < 8; i++) {
			String str = uuid.substring(i * 4, i * 4 + 4);
			int x = Integer.parseInt(str, 16);
			shortBuffer.append(chars[x % 0x3E]);
		}
		return shortBuffer.toString();
	 
	}
	
	
	public static synchronized String generateUuid() {
		long millis = System.currentTimeMillis();
		Random random = new Random();	
		int a1 = random.nextInt(9999);
		//如果不足四位位前面补0
		String a1_str = String.format("%04d", a1);
		
		int a2 = random.nextInt(9999);
		String a2_str =  String.format("%04d", a2);
		
		int a3 = random.nextInt(9999);
		String a3_str = String.format("%04d", a3);
		
		//String uuid = millis + a1_str + a2_str + a3_str;
		return  millis + a1_str + a2_str + a3_str;
	 
	}
	
	/**
	 * 图片名生成
	 */
	public static String genImageName() {
		//取当前时间的长整形值包含毫秒
		long millis = System.currentTimeMillis();
		//long millis = System.nanoTime();
		//加上三位随机数
		Random random = new Random();
		int end7 = random.nextInt(9999999);
		//如果不足三位前面补0
		String str = millis + String.format("%07d", end7);
			return str;
	}
	
	/**
	 * 商品id生成
	 */
	public static long genItemId() {
		//取当前时间的长整形值包含毫秒
		long millis = System.currentTimeMillis();
		//long millis = System.nanoTime();
		//加上两位随机数
		Random random = new Random();
		int end2 = random.nextInt(99);
		//如果不足两位前面补0
		String str = millis + String.format("%02d", end2);
			long id = new Long(str);
			return id;
	}
	
	/**
	 * 判断字符串是否可以转成数值型
	 * @param str
	 */
	public static Boolean isNum(String str){
		try {
			Integer.parseInt(str);
			return true;
		} catch (NumberFormatException e) {
			return false;
		}
	}
	
	public static void main(String[] args){
		
		new Runnable() {
			@Override
			public void run() {
				
				
			}
		};
		
		
		
		
	}
}
